/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package controle;

import dao.core.DaoFactory;
import dao.usuario.JPAUsuarioDao;
import dao.usuario.UsuarioDao;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import modelo.Usuario;

/**
 *
 * @author Thuan
 */
@ManagedBean(name = "beanLogin")
@SessionScoped
public class LoginBean {
    
    private List<Usuario> lista = null;
    private String email;
    private String senha;
    private Usuario usuario = null;
    private UsuarioDao dao = DaoFactory.getDaoFactory(DaoFactory.JPA).getUsuarioDao();
    //private JPAUsuarioDao JPADAO = null;

    /*public JPAUsuarioDao getJPADAO() {
        return JPADAO;
    }

    public void setJPADAO(JPAUsuarioDao JPADAO) {
        this.JPADAO = JPADAO;
    }*/

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    public UsuarioDao getDao() {
        return dao;
    }

    public void setDao(UsuarioDao dao) {
        this.dao = dao;
    }

    public List<Usuario> getLista() {
        return lista;
    }

    public void setLista(List<Usuario> lista) {
        this.lista = lista;
    }
    
    
    public String logar(){
        //this.lista = dao.buscarPorEmail(this.email);
        this.lista = dao.buscarPorLogados();
        boolean existe = false;
        for(Usuario usu:this.lista){
            if(usu.getEmail().equals(this.email) && usu.getSenha().equals(this.senha)){
                existe = true;
                break;
            }
        }
        if(existe == true){

            return "/index";
        }else{
            FacesContext.getCurrentInstance().addMessage("", new FacesMessage(FacesMessage.SEVERITY_INFO,"Email ou senha inválida.",""));
            return "/login";
        }
    }
    
    public String deslogar(){
        this.usuario = null;
        this.senha = null;
        return "/login"; 
    }
    
    public String chamarLogin(){
        return "/login";
    }
    
}
